﻿using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Text;
using AccesoData.Interfaces;
using Entidades;
using MySql.Data.MySqlClient;

namespace AccesoData.DAOMySql
{
    public class DAORecaudoMySql: ConexionBaseDatos, IDAORecaudo
    {
        /// <summary>
        /// agrega un recaudo en la base de datos
        /// </summary>
        /// <param name="miRecaudo"></param>
        /// <returns></returns>
        public int AgregarRecaudo(Recaudo miRecaudo)
        {
            try
            {
                MySqlCommand comando = new MySqlCommand();
                comando.Connection = Conexion();
                comando.CommandType = CommandType.StoredProcedure;
                comando.CommandText = "AgregarRecaudo";


                comando.Parameters.AddWithValue("@nombreRecaudo", miRecaudo.Nombre);

                comando.Parameters["@nombreRecaudo"].Direction = ParameterDirection.Input;

                int id = 0;
                MySqlDataReader reader = comando.ExecuteReader();
                while (reader.Read())
                {
                    id = (reader[0] == DBNull.Value) ? 0 : (int)reader[0];
                }

                CerrarConexion();
                return id;

            }
            catch (Exception)
            {

                return -1;
            }
        }

        public Recaudo ObtenerRecaudo(Entidad miRecaudo)
        {
            try
            {

                MySqlCommand comando = new MySqlCommand();
                Recaudo recaudo = FabricaEntidades.ObtenerRecaudo();

                comando.Connection = Conexion();
                comando.CommandType = CommandType.StoredProcedure;
                comando.CommandText = "ObtenerRecaudo";
                comando.Parameters.AddWithValue("@idRecaudo", miRecaudo.Id);
                comando.Parameters["@idRecaudo"].Direction = ParameterDirection.Input;
                MySqlDataReader reader = comando.ExecuteReader();

                while (reader.Read())
                {
                    recaudo.Id = miRecaudo.Id;
                    recaudo.Nombre = (string)reader[0];
                }

                reader.Close();
                CerrarConexion();
                return recaudo;

            }
            catch (Exception)
            {

                return null;
            }
        }

        public bool EditarRecaudo(int idRecaudo)
        {
            throw new NotImplementedException();
        }

        public bool EliminarRecaudo(int idRecaudo)
        {
            throw new NotImplementedException();
        }

        
    }
}
